package so.sao.shop.supplier.pojo.input;

import lombok.Getter;
import lombok.Setter;
import org.hibernate.validator.constraints.NotEmpty;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;

/**
 *<p>Version:  </p>
 *<p>Title: ServiceLogisticsInput</p>
 *<p>Description:app填写物流入参</p>
 *@author: hanchao
 *@Date: Created in 2017/11/30 10:38
 */

public class ServiceLogisticsInput {

    /**
     *配送方式 1自配送 2物流公司
     */
    @NotEmpty(message = "配送方式不能为空")
    private Integer logisticsShipMethod;

    /**
     * 物流售后类型(0.门店发货,1.供应商发货)
     */
    private Integer logisticsType;

    /**
     * 物流单号
     */
    private String logisticsShipmentNumber;

    /**
     * 物流公司
     */
    private String logisticsCompany;

    /**
     * 取件人/配送人姓名
     */
    private String distributorName;

    /**
     * 取件人/配送人电话
     */
    private String distributorMobile;

    /**
     * 关联表主键(订单明细表)
     */
    private Long detailsId;

    /**
     * 收货人地址
     */
    private String logisticsAddress;

    /**
     * 收货人姓名
     */
    private String logisticsReceiverName;

    /**
     * 收货人电话
     */
    private String logisticsReceiverMobile;

    /**
     * 备注/其它要求
     */
    private String logisticsRemarks;

    /**
     * 订单ID
     */
    private String orderId;

    /**
     * 0拒收 1退换货
     */
    @NotNull(message = "类型不能为空")
    @Size(min = 0,max = 1,message = "类型异常")
    private Integer type;

    /**
     * 子订单的状态0.已完成(初始化状态),1.退款/换货申请中,2.审核通过,3.拒绝退款/换货,4.退款/换货中,5.已退款/已换货,6.退货/换货取消
     */
    private Integer status;

    public Integer getLogisticsShipMethod() {
        return logisticsShipMethod;
    }

    public void setLogisticsShipMethod(Integer logisticsShipMethod) {
        this.logisticsShipMethod = logisticsShipMethod;
    }

    public Integer getLogisticsType() {
        return logisticsType;
    }

    public void setLogisticsType(Integer logisticsType) {
        this.logisticsType = logisticsType;
    }

    public String getLogisticsShipmentNumber() {
        return logisticsShipmentNumber;
    }

    public void setLogisticsShipmentNumber(String logisticsShipmentNumber) {
        this.logisticsShipmentNumber = logisticsShipmentNumber;
    }

    public String getLogisticsCompany() {
        return logisticsCompany;
    }

    public void setLogisticsCompany(String logisticsCompany) {
        this.logisticsCompany = logisticsCompany;
    }

    public String getDistributorName() {
        return distributorName;
    }

    public void setDistributorName(String distributorName) {
        this.distributorName = distributorName;
    }

    public String getDistributorMobile() {
        return distributorMobile;
    }

    public void setDistributorMobile(String distributorMobile) {
        this.distributorMobile = distributorMobile;
    }

    public Long getDetailsId() {
        return detailsId;
    }

    public void setDetailsId(Long detailsId) {
        this.detailsId = detailsId;
    }

    public String getLogisticsAddress() {
        return logisticsAddress;
    }

    public void setLogisticsAddress(String logisticsAddress) {
        this.logisticsAddress = logisticsAddress;
    }

    public String getLogisticsReceiverName() {
        return logisticsReceiverName;
    }

    public void setLogisticsReceiverName(String logisticsReceiverName) {
        this.logisticsReceiverName = logisticsReceiverName;
    }

    public String getLogisticsReceiverMobile() {
        return logisticsReceiverMobile;
    }

    public void setLogisticsReceiverMobile(String logisticsReceiverMobile) {
        this.logisticsReceiverMobile = logisticsReceiverMobile;
    }

    public String getLogisticsRemarks() {
        return logisticsRemarks;
    }

    public void setLogisticsRemarks(String logisticsRemarks) {
        this.logisticsRemarks = logisticsRemarks;
    }

    public String getOrderId() {
        return orderId;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }
}
